package com.itheima.d03_recursion_use;

/**
 * 目标：了解递归的执行流程和分析步骤
 * 使用场景：分析时，发现递归公式，可以使用递归
 *         方法内部调用方法自己的公式
 * 编码流程：
 *   1.定义方法，套用递归公式
 *   2.设置递归的终结点，避免栈内存溢出
 */
public class Test1 {


    /*
        定义方法，计算指定数阶乘
     */
    public  static int jieCheng(int  n){
        //终结点：
        if(n == 1){
            return 1;
        }
        return  jieCheng(n-1) * n;
    }

    public  static int jieCheng2(int  n){
        int result = 1;
        for (int i = 2; i <= n; i++) {
            result *= i;
        }
        return result;
    }



    public static void main(String[] args) {
        System.out.println(jieCheng(6));
        System.out.println(jieCheng2(6));
    }

}
